#pragma once
#include <easyx.h>
#include <windows.h>
#include <cstring>
#pragma comment(lib,"winmm.lib")
#define SIZE  32           //一张图片的像素，用来固定 地图图片的打印输出的 尺寸
//--------------------------------------数据设计--------------------------------------

/*
	角色结构体
	功能：用来存储对应角色的属性信息
*/
struct ROLEMAN
{
	int hp;          //血量
	int att;         //攻击力
	int def;         //防御力
	int money;       //金钱
	int rkey;		 //红钥匙
	int ykey;        //黄钥匙
	int bkey;        //蓝钥匙
	int watch;		 //祖父怀表
	int lotus;		 //业火莲华
	int lament;		 //旧日歌谣
};

/*
	怪物结构体
	功能：用来存储对应怪物的属性信息
*/
struct MONSTER
{
	int hp;      //血量
	int att;     //攻击力
	int def;     //防御力
	int money;   //掉落金钱
	bool isFirst;//是否先手
};

/*
	道具结构体
	功能：用来存储对应道具的属性信息
*/
struct ITEM
{
	char name[50];		 //道具名
	int effect;	         //道具效果（例如经验、体力、攻击等）
	int price;			 //价格(商店出售的部分道具需要价格)
};

struct SHOP {
	ITEM items[3];  // 商品列表（商品就三个：攻击药水，防御药水，体力药水）
	int itemCount;  // 商品数量（商品就三个：攻击药水，防御药水，体力药水）
};

/*
	定义一个枚举类型,来管理游戏的不同状态
	在GameView()整合窗口中去使用
*/
typedef enum {
	HOME_PAGE,           //游戏首页
	GAME_PLAYING,        //开始游戏
	GAME_SETTING,        //游戏设置
	GAME_INSTRUCTION,    //游戏说明
	GAME_PLOTBG,		 //游戏剧情背景展示 衔接于主菜单和剧情介绍之间
	GAME_PLOT,           //游戏剧情介绍
	GAME_SETTLE,        //游戏结算界面
	GAME_SHOP,          // 商店界面
	GAME_PAUSE,           //按下Esc 进入 游戏暂停界面
	GAME_MANUAL			//怪物手册界面
} gameState;

// 全局变量声明
extern int volumeBGM;				//BGM音量
extern int volumeSOUND;				//音效音量
extern int level;            // 当前所在层数
extern const int highlevel;		 // 最高楼层数
extern int row, col;         // 角色所在的位置
extern const int windowWidth;		//窗口宽度
extern const int windowHeight;	//窗口高度
extern const int dialogueWidth;	//对话框宽度
extern const int dialogueHeight;	//对话框高度
extern char str[20];		 //用来在 Turnchar()中实现 整形数据 转换成字符串
extern HWND hwnd;            // 窗口句柄
extern int Gamemap[6][14][14];	//动态的地图
extern int Designed_map[6][14][14];	//设计的地图
extern IMAGE img[308], roleimage, bgimage,icon; // 需要加载的地图图片

extern const char* bgmList[5];	      // 背景音乐列表
extern int currentBGMIndex;       // 当前播放的音乐索引
extern bool isBGMPlay;			//背景音乐是否正在播放
extern bool isSoundLoad;		//音效是否加载

extern int harm[30];		//怪物对角色造成的伤害损失
extern int nowMonster;		//记录当前怪物id

using namespace std;
//--------------------------------------数据设计--------------------------------------